S3ライフサイクルルールで0日指定しても即座に移行されないのはなぜですか
困っていること
S3ライフサイクルバケットルールにおいて、オブジェクト作成後から指定ストレージクラスに移行するまでの日数を0日に指定しても、移行されません。
設定方法やその他注意すべき点を教えてください。
どう対応すればいいの?
S3ライフサイクルは設定時から指定した日数が経過したタイミングで即時にライフサイクルアクションが実行される機能ではありません。
指定した日数が経過した後の「UTC 00:00(日本時間午前9時)」にライフサイクルアクションが実行されます。
そのため、通常ではライフサイクルルールの移行までの日数を0日と指定した場合、指定した時間が日本時間午前8時59分以前の場合はその日の午前9時ごろに、午前9時以降に設定した場合は翌日の午前9時ごろにライフサイクルアクションが実行されます。設定後、動作を確認してください。
また、新規ルールの伝播遅延、削除処理の非同期処理による遅延などによる数分間程度の実行の遅延を考慮した設計や動作確認が必要になります。
その他考慮点
上記以外のライフサイクルルール設定時の考慮点を2点ご紹介します。
- 移行先ストレージタイプの注意点
移行先ストレージタイプをS3 標準–IAかS3 1ゾーン-IAに指定した場合、移行するまでにオブジェクトを移行前のストレージに30日以上保存する必要があります。そのため、移行までの日数を0日(30日未満も同様に)でのライフサイクルルール設定を行うことはできません。
- 128KB未満のオブジェクトを含む場合
2024年9月以降、デフォルトで128KB未満のオブジェクトがライフサイクルアクションにより指定したストレージタイプへの移行が行われなくなりました。
そのため、128KB未満のオブジェクトを含み、かつそれらを移行させたい場合はライフサイクルルール設定において、「最小オブジェクトサイズ」を指定する必要があります。
ただし、128KB未満のオブジェクトを移行することで、移行コストが移行によるストレージコストメリットを上回ってしまう可能性が考えられるため、コスト面の検討も必要になります。
参考資料